此篇博文只有核心理论概念(只有定义,基本操作实现见仓库),具体代码见我的 GitHub 仓库,Data Structures For C Language。/ 参考了若干本书,都不尽相同,加上书中发现了不少错误,所以以我自己写出的实际能运行的代码为准(综合了若干本书中的内容)。
参考:1、 《数据结构考研复习指导》2、 《大话数据结构》3、 《数据结构算法解析》 高一凡4、 《数据结构》 清华大学出版社
一 绪论1 知识框架2 数据结构基本概念概念与术语:数据:信息的载体,对客观世界的描述,计算机程序可识别处理的符号集合。数据元素:数据的基本单位。数据元素由数据项组成,数据项是构成数据元素的最小单位(数据项 -> 数据元素 -> 数据)。数据对象:数据的一个子集。相同性质的数据元素的集合(多个同性质的数据元素)。数据类型:一个值的集合及其操作。原子类型(值不可再分)、结构类型(值可再分)、抽象数据类型(抽象数据组织与操作)。抽象数据类型(ADT):数学模型及其操作。是逻辑特性。由数据对象、数据关系、基本操作集组成。数据结构:数据元素间的关系。数据结构包括三方面,逻辑结构、存储结构、数据的运算。数据结构的三要素:
数据的几种存储结构优劣:
顺序存储:优点是可随机存取,每个数据元素占用最少存储空间;缺点是只能使用一整块存储单元,产生外部碎片。链式存储:优点是不会出现碎片,充分利用存储单元;缺点是存储指针占用额外空间,只能顺序存取。索引存储:优点是检索速度快;缺点是索引表占用额外空间,修改数据时对索引表修改花费